package com.sumainfor.common;

import com.google.common.collect.Lists;
import com.sumainfor.common.util.CustomMap;

import java.util.List;
import java.util.Objects;

/**
 * 数据库相关
 *
 * @author zhlu
 * @ClassName: Constants
 * @date 2018年10月12日
 */
@SuppressWarnings(value = "all")
public interface Constants {

    /**
     * 配置需要忽略的Url 接口
     */
    List<String> IGNORE_URL_SUFFIX = Lists.newArrayList(
            "signed/noticeStateResult"
    );

    /**
     * Kafka topic
     */
    String KAFKA_ERROR_LOG_NAME = "errorlog";

    String HEAD_USER_ID = "Head-User-Id";
    String HEAD_TYPE = "Head-Type";

    enum HeadType {
        SYS(1),
        WX(2),
        Ignore(3);

        private int code;

        HeadType(int code) {
            this.code = code;
        }

        public boolean checkCode(Integer code) {
            return Objects.equals(code, Integer.valueOf(this.code));
        }

        public int getCode() {
            return code;
        }
    }

    /**
     * 临时加密访问Zuul的接口
     */
    String AUTH = "a12378/-**'][pqwe]";

    /**
     * 市场部对应的数据库名称
     */
    String DATA_SOURCE_TCMKT = "tcmkt";

    /**
     * 工程部对应的数据库名称
     */
    String DATA_SOURCE_TCEPC = "tcepc";
    /**
     * 运营部对应的数据库名称
     */
    String DATA_SOURCE_GMIO = "tcgmio";
    /**
     * 财务部对应的数据库名称
     */
    String DATA_SOURCE_CFO = "tccfo";
    /**
     * 租客端对应的数据库名称
     */
    String DATA_SOURCE_TCTEN = "tcten";

    /**
     * 发展部对应的数据库名称
     */
    String DATA_SOURCE_TCDP = "tcdp";
    /**
     * 权限对应的数据库名称
     */
    String DATA_SOURCE_SECURITY = "security";

    interface ShopTypeConst {
        /**
         * 修改参数的话要同步的修改 类 ShopTypeSelectUtil
         */
        CustomMap TYPE_MAP = CustomMap.create()
                .put("1", "家电")
                .put("2", "其他商品")
                .put("3", "备件商品")
                .put("4", "智能设备")
                .put("5", "橱窗门锁")
                .put("6", "家具");

    }

    interface SupplierTypeConst {
        /**
         * 修改参数的话要同步的修改 类 ShopTypeSelectUtil
         */
        CustomMap TYPE_MAP = CustomMap.create()
                .put("1", "硬装供应商")
                .put("2", "软装供应商")
                .put("3", "保洁供应商");
//                .put("4", "有线电视供应商");
    }

    interface BuyerTypeConst {
        /**
         * 采购单类型   1.装修采购单   2备件采购
         */
        CustomMap TYPE_MAP = CustomMap.create()
                .put("1", "装修采购单")
                .put("2", "备件采购");
    }

    interface SettlementType {
        /**
         * 账单类型
         * 1.装修结算单,2备件结算单,3.保洁结算单,4.硬装结算单
         */
        CustomMap TYPE_MAP = CustomMap.create()
                .put("1", "装修结算单")
                .put("2", "备件结算单")
                .put("3", "保洁结算单")
                .put("4", "硬装结算单");
    }

    /**
     * 部门类型
     */
    interface AuthDeptType {
        /**
         * 部门类型  1公司 2部门 3服务中心
         */
        CustomMap TYPE_MAP = CustomMap.create()
                .put("1", "公司")
                .put("2", "部门")
                .put("3", "服务中心");


        class Impl implements AuthDeptType {
            /**
             * 判断是否是服务中心
             *
             * @param type
             * @return
             */
            public static boolean isServiceCenter(int type) {
                String val = (String) TYPE_MAP.get(type + "");
                return val.equals("服务中心");
            }
        }
    }

    /**
     * E签宝 Header
     */
    interface EQB {


//        String APP_ID = "4438759572";//测试用的
//        String APP_SECRET = "abe1c118d458443751d89406795273ab";//测试用的
        String APP_ID = "5111589495";//正式用的
        String APP_SECRET = "9348c8268f4770eeb9d96058714e6faf";//正式用的




    }

    /**
     * E签宝合同模板
     */
    interface EPactTemplate {
//        /**
//         * 新签合同模板ID(测试)
//         */
//        String NEW_PACT_ID = "da8ae46099b24873882a339f4ac5f04f";
        /**
         * 新签合同模板(正式)
         */
        String NEW_PACT_ID = "bb2dbe7fab094d79be43b8ec61521700";





        /**
         * 续签协议模板(正式)(无效的)
         */
        String RENEW_PACT_ID = "bb2dbe7fab094d79be43b8ec61521700";
    }
}
